<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            text-align: center;
            font-size: 50px
        }
    </style>
    <script src="../../vue.js"></script>
</head>

<body>
    <pre>
        父组件向子组件 传递 数据
            1、以属性的方式 在子组件的标签中声明。
            2、子组件在与data同级的区域应用 props 来引用 数据
            3、在书写属性名时 建议使用 下划线的形式 来命名 因为：驼峰式的写法应用在 标签中时，vue不能识别 在
            模板字符串中可以识别
            4、在使用标签定义的属性时，如果直接书写没有使用 v-bind：来定义标签 得到的数据类型都是string类型
            用v-bind：定义之后得到的是数据本身的类型 例如：number boolean
    </pre>
    <div class="box">
        <wzp :title='msg' :num='12' :boo='true'></wzp>
    </div>
    <script>
        Vue.component('wzp', {
            props: ['title', 'num', 'boo'],
            data: function() {
                return {
                    style: ['飘逸', '帅气', '上进', '幽默', '阳光'],
                    index: 1,
                    name: '飘逸',
                    colorArr: ['skyblue', 'purple', 'red', 'orange', 'pink'],
                    iscolor: 'skyblue',
                }
            },
            template: `
            <div>
                <p :style='{color:iscolor}'> wzp： {{ name }}</p>  <br />
                <div>{{ title }}</div>
                <div>{{ typeof num }}</div>
                <div>{{ typeof boo }}</div>
                <button @click='handle'>还有呢</button>  
            </div>
            `,
            methods: {
                handle() {
                    if (this.index > 4) {
                        this.index = 0
                    }
                    this.iscolor = this.colorArr[this.index]
                    this.name = this.style[this.index]
                    this.index++
                }
            }
        })

        var vm = new Vue({
            el: '.box',
            data: {
                msg: '汪佳慧是一坨屎',
            },

        })
    </script>
</body>

</html>